Integração Apache => Tomcat

Integrando o Apache com o TOMCAT para que as páginas estáticas sejam executadas pelo Apache e as em JSP pelo contêiner TOMCAT, além do direcionamento das aplicações via APACHE, sendo o WebServer de acesso para as aplicações que estão no TOMCAT.

[ Hits: 75.807 ]

Por: Bruno Lima Queiroz em 16/10/2007


Configuração no Apache



Vamos criar dois arquivos, um para configurarmos a comunicação com o TOMCAT e outro para configurações básicas do MOD_JK e definição de quais serão os "CONTEX" do TOMCAT que serão executados pelo APACHE.

Arquivo workers.properties:

# vi workers.properties

Adicionar o seguinte conteúdo ao arquivo criado:

#
# workers.properties
#

# In Unix, we use forward slashes:
ps=/

# list the workers by name

worker.list=tomcat1(nome configurado no arquivo server.xml do TOMCAT)

# ------------------------
# First tomcat server
# ------------------------
worker.tomcat1.type=ajp13
worker.tomcat1.host=localhost(nome do servidor onde temos o tomcat)
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=50
worker.tomcat1.cachesize=10
worker.tomcat1.cache_timeout=500
worker.tomcat1.socket_keepalive=1
worker.tomcat1.socket_timeout=300

# Specify the size of the open connection cache.
#worker.tomcat1.cachesize

#
# Specifies the load balance factor when used with
# a load balancing worker.
# Note:
# ----> lbfactor must be > 0
# ----> Low lbfactor means less work done by the worker.
worker.tomcat1.lbfactor=100 //Definindo que toda a carga será usada apenas para um TOMCAT, é o nosso caso.

#
# END workers.properties

É um arquivo bem simples onde definimos o "nome" do TOMCAT para integração via MOD_JK, "worker.list=tomcat1" e demais parâmetros para configuração de conexão, onde devemos alterar de acordo com nosso ambiente.

Arquivo tomcat.conf:

Adicionar o seguinte conteúdo ao arquivo criado:

JkWorkersFile /usr/local/apache2/conf/workers.properties

JkLogFile /usr/local/apache2/logs/mod_jk.log

JkLogLevel info

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

JkRequestLogFormat "%w %V %T"

JkMount /examples/servlet/* tomcat1
JkMount /examples/* tomcat1
JkMount /examples/jsp/* tomcat1
JkMount /*.jsp tomcat1
JkMount /aplicacao1/* tomcat1

O que destaco são apenas as linhas com "JKMount", que é o diretório (CONTEX ROOT) do TOMCAT, é o nome do DIR que você acessa sua aplicação.

Vamos adicionar nosso arquivo "tomcat.conf" no "httpd.conf" do Apache:

# vi /usr/local/apache2/conf/httpd.conf

Adicionar a seguinte linha no arquivo:

Include conf/tomcat.conf

Vamos reiniciar o APACHE:

# /usr/local/apache2/bin/apachectl restart

Testando integração

Agora ao invés de acessarmos o endereço do TOMCAT, Ex.:

http://localhost:8080/aplicacao1

Iremos acessar:

http://localhost/aplicacao1

Ele irá mostrar a aplicação que está no TOMCAT e aplicará suas melhorias.

Obs.: Para os diretórios que não estiverem no TOMCAT.CONF, ele irá procurar no DOCUMENT ROOT de nosso APACHE.

Página anterior    

Páginas do artigo
   1. Conceito
   2. Instalando OpenSSL, Apache, Tomcat e Java
   3. Tomcat conector - MOD_JK
   4. Configuração no TOMCAT
   5. Configuração no Apache
Outros artigos deste autor

Solução completa para Web Server usando Apache + SSL + MOD_JK + PHP + MySQL

Ferramentas de detecção e NMAP

Instalação do Apache 2 no OpenSuSE 10.2

Introdução ao Personal Firewall (PF)

Certificação Digital no Linux - Apache2

Leitura recomendada

Simulando aplicações simples com TinyOS e Cooja

Transformando o Linux em um Access Point com hostapd

Navegando em modo texto com imagens

Modem USB 3G largado na gaveta! Nãããõooo...

Redirecionando acesso ao VNC e ocultando o ícone

  
Comentários
[1] Comentário enviado por hugoeustaquio em 16/10/2007 - 08:54h

Parabéns, muito esclarecedor. Fica somente uma dica para os próximos leitores, usem o programa 'checkinstall' ao invéz de usar o comando 'make install', para gerar pacotes para a sua distribuição, assim fica mais fácil desinstalar depois, ou reinstalar caso você precise. Também é legal usar umas dicas para otimizar a compilação para o seu processador, caso você não tenha interesse em distribuir esses pacotes para outras pessoas. Você pode aprender a usar o checkinstall aqui: http://www.vivaolinux.com.br/dicas/verDica.php?codigo=8466
e pode otimizar a sua compilação inserindo as seguintes linhas no arquivo /etc/profile :
CFLAGS="-O2 -march=AtlonXP -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
export CFLAGS CHOST CXXFLAGS MAKEOPTS

Note que você terá que substituir o 'AtlonXP' pelo identificador do seu processador, que poderá ser k6, k7, k8 (modelos da AMD) ou PentiumIII, PentiumIV, pentium-mmx para modelos da intel. Para saber informações sobre o seu processador leia o arquivo /proc/cpuinfo. Mais uma vez parabéns pelo artigo!

[2] Comentário enviado por brunolimaq em 16/10/2007 - 09:14h

Boa dica...

Mas vale lembrar que a recompilação do Apache, PHP e qualquer outro programa instalado apartir de um SOURCE é possivel sem o "checkinstall". Podemos usar o "Make Clean" antes de recompilar, bastando manter o mesmo diretório de instalação da compilação anterior, que pode ser obtida olhando a LOG do "Configure".

Um bom dia a todos...

Att.,

Bruno Lima Queiroz

[3] Comentário enviado por ls_junior em 17/10/2007 - 07:07h

Lembrando que existe o módulo mod_proxy_ajp que é bem mais simples de configurar que o mod_jk.

Segue exemplo de configuração do mod_proxy_ajp para o manager do tomcat:

<Location /manager>
ProxyPass ajp://nome_do_host_tomcat:8009/manager/
Order allow,deny
allow from all
</Location>

Sim, é apenas isso. Além de carregar o módulo(proxy_ajp.load do Debian):
# Depends: proxy
LoadModule proxy_ajp_module /usr/lib/apache2/modules/mod_proxy_ajp.so

[4] Comentário enviado por andrade.ti em 17/10/2007 - 11:31h

Muito bom artigo. Eu estava pensando em escrever um sobre o mod_jk que a princípio é mais complicado do que o mod_proxy_ajp, mas é mais versátil, por não ser um simples redirecionamento mas sim uma integração verdadeira.

Valeu.
LCA.

[5] Comentário enviado por brgsousa em 18/10/2007 - 10:29h

Muito bom seu tutorial,
Tava sentindo falta de um tutorial atualizado.

Queria atentar para as descrições de criação de links que estao erradas. O certo seria (Estou no Debian):
ln -s <origem> <destino>
Exemplo: ln -s apache-tomcat-6.0.14 apache-tomcat

Espero ter ajudado
Abraços!

[6] Comentário enviado por brunolimaq em 18/10/2007 - 17:15h

varia de distro..
suse, opensuse, red,fedora,solaris..
:)
mas valews! :)

[7] Comentário enviado por removido em 04/04/2008 - 14:50h

Ola quando tento utilizar o mod_jk.so com o comando ./configure --with-apxs=/usr/local/apache2/bin/apxs ele diz que o arquivo apxs nao existe tentei com o comando --with-apache=/usr/local/apache-tomcat-5-5.1.7. e deu que não era um diretorio válido do fonte do apache . Será que tem solução??

[8] Comentário enviado por hugoeustaquio em 04/04/2008 - 14:53h

Seguinte, alexmoreira:
Digite o comando "whereis apxs" e veja se ele aponta um caminho. Em caso positivo, utilize esse caminho no lugar de "/usr/local/apache2/bin/apxs". Em caso negativo verifique a instalação do apache. Pode ser que sua distribuição tenha colocado o "apxs" em outro pacote. Se isso acontecer, você terá que descobrir qual pacote é esse, fazendo uma busca no programa que gerencia os pacotes da sua distribuição.

[9] Comentário enviado por hugoeustaquio em 04/04/2008 - 14:57h

A propósito alexmoreira, você já tinha o apache (servidor web) instalado ou você procedeu a instalação através do código fonte? Se foi a partir do código fonte, verifique se a compilação procedeu corretamente.

[10] Comentário enviado por removido em 07/04/2008 - 11:41h

sim o apache está instalado no diretorio /etc/apache2 é o apache 2.2. como faço uma busca para descobrir mesmo se o apxs está instalado na minha máquina. Agradeço desde já.

[11] Comentário enviado por removido em 07/04/2008 - 11:56h

Ola apos dar o comando locate encontrei os seguintes arquivos makefile.apxs isso é o apxs? ele tava na pasta de conectores do tomcat.

[12] Comentário enviado por hugoeustaquio em 07/04/2008 - 12:22h

Tente dar o seguinte comando:
$ find /etc/apache2 -iname apxs

[13] Comentário enviado por removido em 07/04/2008 - 12:27h

Ai !! nao sei mais nada : nao encontrou nada dessa vez !!!??

[14] Comentário enviado por hugoeustaquio em 07/04/2008 - 12:32h

Você instalou o apache utilizando as instruções desse artigo? Ou instalou somente o tomcat porque já possuía o apache instalado?

[15] Comentário enviado por removido em 07/04/2008 - 13:06h

Já tinha o apache instalado. O tomcat instalei dedpois. o servidor atual é um Debian e apache é o 2.2.

[16] Comentário enviado por hugoeustaquio em 07/04/2008 - 13:10h

Instala o pacote apache-dev, com isto o apxs ficará em /usr/bin/apxs.

[17] Comentário enviado por juniomundo em 16/05/2009 - 11:59h

Realizei a instalção do LAMP através do nautilus, gostaria de saber se tem esta possibilidade de integração.Porque quando eu dou o comando: gedit httpd.conf, consigo visualizar um arquivo em branco.

Agradeço desde já,
Júnio César Silva

[18] Comentário enviado por jrpmoraes em 03/08/2009 - 09:04h

estou com seguinte erro na hora de subir o tomcat
JkWorkersFile: Can't find the workers file specified

[19] Comentário enviado por luizvieira em 01/04/2010 - 13:31h

Muito bom!
Ajudou aqui numa integração q precisava fazer no Debian.
[ ]'s


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts